/*
 * Copyright 北京航空航天大学  @ 2015 版权所有
 */
package com.buaa.edu.leetcode.algorithm.dp;

/**
 * <p>
 * 爬楼梯
 * N阶楼梯，每次只能爬上一个或者两个台阶，计算有多少不同方法爬到楼梯的方法
 * </p>
 * @author towan
 * @email tongwenzide@163.com
 * @time 2015年5月30日
 */
public class ClimbingStairs {

  public int climbStairs(int n) {
      
      if(n==0 || n==1){
            return 1;
        }
      //考虑到数组从下标0开始
      int []dp = new int[n+1];
      dp[0] = 1;
      dp[1] = 1;
      for(int i=2;i<n+1;i++){
          dp[i] = dp[i-1]+dp[i-2];
      }
      return dp[n];
    }
}
